#pragma once

#include "Property/EditorPropertyModel.h"
#include "EditorMeshMaterialPropertyModel.m.h"

class RStaticMesh;
class RMaterial;
class REditorMeshPageModel;

RCLASS(ExtraHeader=["Pages/Mesh/EditorMeshPageModel.h"])
class REditorMeshMaterialPropertyModel : public REditorPropertyModel
{
    ROBJECT

public:

    static TSharedObjectPtr<REditorMeshMaterialPropertyModel> Create(
        TSharedObjectPtr<REditorMeshPageModel> InMeshPageModel,
        RObject* InParent
        );

    TSharedObjectPtr<RStaticMesh> GetMesh() const;

    void SetMaterial(int64_t MaterialSlotIndex, TSharedObjectPtr<RMaterial> InMaterial);

    RFIELD()
    TSharedObjectPtr<REditorMeshPageModel> MeshPageModel;
};